System and method for detecting product defects across manufacturing process

ABSTRACT

Disclosed herein is method and fault detection system for detecting faults in one or more products. In an embodiment, method comprises generating plurality of wavelet coefficients corresponding to transformed images of each of the one or more products and determining a set of invariant features from the plurality of wavelet coefficients. Further, a dynamic set of invariant features is generated by grouping invariant features into a set of groups based on type of the one or more products. Subsequently, the dynamic set of invariant features is quantized based on a predetermined quantization threshold and a representative coefficient signature is associated for each group in the dynamic set of invariant features. Finally, faults in the one or more products are detected by comparing coefficient signatures associated with the one or more products with the representative coefficient signature of each group in the dynamic set of invariant features. In an embodiment, the present disclosure helps in accurate detection of faults in one or more products irrespective of type and characteristics of one or more products.

TECHNICAL FIELD

The present subject matter is, in general, related to manufacturingplants, but not exclusively, to a method and system for detectingproduct defects in a manufacturing process.

BACKGROUND

Generally, in product plant or a manufacturing plant, it is estimatedthat around 15% of all the products manufactured may have at least onedefect. Defective products not only bring down the productivity, butalso increase expenditures in terms of reworking the defective products.Time and manual efforts required for identifying the defective productsand reworking or replacing them also increases expenditures. Therefore,efficient handling of the defective products becomes crucial forenhancing overall productivity of the production or manufacturingprocess.

The existing mechanisms for detecting the faults and/or defects in theproducts across manufacturing industry are costly, time consuming anduse complex mechanisms. That is, the existing fault detection mechanismsuse complex techniques, require intense manual efforts and consume moretime for accurate detection of the faults. Further, certain other faultdetection mechanisms, which use Artificial Intelligence (AI) based deeplearning models for fault detection, require huge datasets comprisinginformation of all types of faults for training the model. Also, oncetrained, these models are capable of detecting only those faults whichare already pre-stored in the datasets and used during the training. Inaddition, these models consume great deal of computational resourcesboth during training and run-time of the model.

Essentially, the existing AI based fault detection mechanisms work wellonly for products of a fixed size and specific orientation of theproducts where the faults can generally occur. Since the template of thefaults are fixed for these models, there is a practical limit on therange of faults that may be successfully detected by these models.Therefore, it may be desirable to have a universal fault detectionmechanism, which detects all types of faults in the products,irrespective of product characteristics and nature of the fault.

The information disclosed in this background of the disclosure sectionis only for enhancement of understanding of the general background ofthe invention and should not be taken as an acknowledgement or any formof suggestion that this information forms the prior art already known toa person skilled in the art.

SUMMARY

Disclosed herein is a method for detecting faults in one or moreproducts. The method comprises generating a plurality of waveletcoefficients corresponding to each of one or more transformed images ofeach of the one or more products. Each of the plurality of waveletcoefficients correspond to at least one characteristic of each of theone or more products. Further, the method comprises determining a set ofinvariant features, corresponding to the one or more products, from theplurality of wavelet coefficients by comparing values of the pluralityof wavelet coefficients with corresponding predetermined thresholdcoefficient values. Thereafter, the method comprises generating adynamic set of invariant features by grouping the invariant featuresinto a set of groups based on type of the one or more products. Eachgroup in the set of groups comprises wavelet coefficients distinct tothe type of the one or more products. Further, the method comprisesquantizing the dynamic set of invariant features based on apredetermined quantization threshold and associating a representativecoefficient signature for each group in the dynamic set of invariantfeatures. Finally, the method comprises detecting the faults in the oneor more products based on comparison of coefficient signaturesassociated with the one or more products with the representativecoefficient signature of each group in the dynamic set of invariantfeatures. Detecting the faults further comprises identifying mismatch ofcoefficient signatures, associated with the one or more products, withthe representative coefficient signature of each group in the dynamicset of invariant features.

Further, the present disclosure relates to a fault detection system fordetecting faults in one or more products. The fault detection systemcomprises a processor and a memory. The memory is communicativelycoupled to the processor and stores processor-executable instructions,which on execution, cause the processor to generate a plurality ofwavelet coefficients corresponding to each of one or more transformedimages of each of the one or more products. Each of the plurality ofwavelet coefficients correspond to at least one characteristic of theone or more products. Further, the instructions cause the processor todetermine a set of invariant features, corresponding to the one or moreproducts, from the plurality of wavelet coefficients by comparing valuesof the plurality of wavelet coefficients with correspondingpredetermined threshold coefficient values. Thereafter, the instructionscause the processor to generate a dynamic set of invariant features bygrouping the invariant features into a set of groups based on type ofthe one or more products. Each group in the set of groups compriseswavelet coefficients distinct to the type of the one or more products.Further, the instructions cause the processor to quantize the dynamicset of invariant features based on a predetermined quantizationthreshold and associating a representative coefficient signature foreach group in the dynamic set of invariant features. Finally, theinstructions cause the processor to detect the faults in the one or moreproducts based on comparison of coefficient signatures associated withthe one or more products with the representative coefficient signatureof each group in the dynamic set of invariant features. The faults aredetected by identifying mismatch of coefficient signatures, associatedwith the one or more products, with the representative coefficientsignature of each group in the dynamic set of invariant features.

Furthermore, the present disclosure relates to a non-transitory computerreadable medium including instructions stored thereon that whenprocessed by at least one processor cause a fault detection system fordetecting faults in one or more products. Initially, the instructionscause the fault detection system to generate a plurality of waveletcoefficients corresponding to each of one or more transformed images ofthe one or more products. Each of the plurality of wavelet coefficientscorrespond to at least one characteristic of the one or more products.Further, the instructions cause the fault detection system to determinea set of invariant features, corresponding to the one or more products,from the plurality of wavelet coefficients by comparing values of theplurality of wavelet coefficients with corresponding predeterminedthreshold coefficient values. Thereafter, the instructions cause thefault detection system to generate a dynamic set of invariant featuresby grouping the invariant features into a set of groups based on type ofthe one or more products. Each group in the set of groups compriseswavelet coefficients distinct to the type of the one or more products.Further, the instructions cause the fault detection system to quantizethe dynamic set of invariant features based on a predeterminedquantization threshold and associating a representative coefficientsignature for each group in the dynamic set of invariant features.Finally, the instructions cause the fault detection system to detect thefaults in the one or more products based on comparison of coefficientsignatures associated with the one or more products with therepresentative coefficient signature of each group in the dynamic set ofinvariant features. The faults are detected by identifying mismatch ofcoefficient signatures, associated with the one or more products, withthe representative coefficient signature of each group in the dynamicset of invariant features.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the drawings and the followingdetailed description.

BRIEF DESCRIPTION OF DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this disclosure, illustrate exemplary embodiments and, togetherwith the description, explain the disclosed principles. In the figures,the left-most digit(s) of a reference number identifies the figure inwhich the reference number first appears. The same numbers are usedthroughout the figures to reference like features and components. Someembodiments of system and/or methods in accordance with embodiments ofthe present subject matter are now described, by way of example only,and regarding the accompanying figures, in which:

FIG. 1 illustrates an exemplary environment of detecting faults in oneor more products in accordance with some embodiments of the presentdisclosure.

FIG. 2 shows a detailed block diagram of a fault detection system inaccordance with some embodiments of the present disclosure.

FIG. 3 shows a detailed block diagram of a quantization module inaccordance with some embodiments of the present disclosure.

FIG. 4 shows a flowchart illustrating a method of detecting faults inone or more products in accordance with some embodiments of the presentdisclosure.

FIG. 5 illustrates a block diagram of an exemplary computer system forimplementing embodiments consistent with the present disclosure.

It should be appreciated by those skilled in the art that any blockdiagrams herein represent conceptual views of illustrative systemsembodying the principles of the present subject matter. Similarly, itwill be appreciated that any flow charts, flow diagrams, statetransition diagrams, pseudo code, and the like represent variousprocesses which may be substantially represented in computer readablemedium and executed by a computer or processor, whether such computer orprocessor is explicitly shown.

DETAILED DESCRIPTION

In the present document, the word “exemplary” is used herein to mean“serving as an example, instance, or illustration.” Any embodiment orimplementation of the present subject matter described herein as“exemplary” is not necessarily to be construed as preferred oradvantageous over other embodiments.

While the disclosure is susceptible to various modifications andalternative forms, specific embodiment thereof has been shown by way ofexample in the drawings and will be described in detail below. It shouldbe understood, however that it is not intended to limit the disclosureto the specific forms disclosed, but on the contrary, the disclosure isto cover all modifications, equivalents, and alternative falling withinthe scope of the disclosure.

The terms “comprises”, “comprising”, “includes”, or any other variationsthereof, are intended to cover a non-exclusive inclusion, such that asetup, device, or method that comprises a list of components or stepsdoes not include only those components or steps but may include othercomponents or steps not expressly listed or inherent to such setup ordevice or method. In other words, one or more elements in a system orapparatus proceeded by “comprises . . . a” does not, without moreconstraints, preclude the existence of other elements or additionalelements in the system or method.

The present disclosure relates to a method and a fault detection systemfor detecting faults in one or more products being produced in amanufacturing plant or an industrial site. The present disclosureprovides a mechanism for identifying faulty objects or industrialproducts, while trying to address some of the limitations in theconventional fault detection mechanisms.

In some embodiments, the present disclosure provides a mechanism fordetecting faults across the manufacturing industry using wavelets andGrover's technique. Initially, a wavelet transformation and relatedcoefficients are created using techniques such as Daubechies waveletstransform. Further, the invariant wavelet coefficients are detectedusing the images of objects in different orientation. Also, a dynamicrange of wavelet coefficients is selected for similar type of objectsbut of different sizes. Subsequently, the wavelet coefficients arequantized to generate unique signatures for the objects enablingoptimized search. In an embodiment, the present disclosure performsfitment identification and fault detection using segmentation andoptimized search techniques, which are disclosed in greater detail inthe further sections of the present disclosure.

In the following detailed description of the embodiments of thedisclosure, reference is made to the accompanying drawings that form apart hereof, and in which are shown by way of illustration specificembodiments in which the disclosure may be practiced. These embodimentsare described in sufficient detail to enable those skilled in the art topractice the disclosure, and it is to be understood that otherembodiments may be utilized and that changes may be made withoutdeparting from the scope of the present disclosure. The followingdescription is, therefore, not to be taken in a limiting sense.

FIG. 1 illustrates an exemplary environment for detecting faults in oneor more products in accordance with some embodiments of the presentdisclosure.

In an embodiment, the environment 100 may be a production site and/or amanufacturing plant in which one or more products are being produced ormanufactured. In an embodiment, the one or more products may include awide range and variety of products including, without limitation, nuts,bolts, screws, gearboxes, ball joints, auto electrical parts, brakepads, brake horses and the like. In an embodiment, one or more faults inthe one or more products may be identified using the fault detectionsystem 103 configured at the environment 100.

In an embodiment, the fault detection system 103 may be any computingsystem capable of being configured to analyse one or more images of theone or more products 101 and detect the one or more faults in accordancewith various embodiments of the claimed invention. As an example, thefault detection system 103 may include, without limiting to, a desktopcomputer, a laptop, a smartphone or even a server computer. In animplementation, the fault detection system 103 may be configured at theenvironment 100 and locally operated at the production site. In analternative implementation, the fault detection system 103 may beconfigured and operated from a remote location and the one or moreimages of the one or more products 101 may be transmitted to the faultdetection system 103 over a wired and/or wireless communication channel.Further, the fault detection system 103 may be interfaced with adatabase 105 for retrieving information such as, without limitation,historical images of the one or more products 101, predeterminedthreshold values and the like, which are required for detecting faultsin the one or more products. In an embodiment, the fault detectionsystem 103 and the database 105 may be connected over a wired and/orwireless communication channel.

In an embodiment, the one or more images of the one or more products 101may be captured using a plurality of image capturing units (not shown inFIG. 1) configured at the environment 100. As an example, the pluralityof image capturing units may be configured along a conveyer beltcarrying the one or more products, such that, the plurality of imagecapturing units capture images of the one or more products from multipleorientations and light intensities. Further, the plurality of imagecapturing units may be interfaced with the fault detection system 103for dynamically transmitting the captured images of the one or moreproducts 101 to the fault detection system 103 for further analysis.

In an embodiment, upon receiving the one or more images of the one ormore products 101, the fault detection system 103 may apply one or moreimage pre-processing and/or image transformation techniques on each ofthe one or more images of the one or more products 101 to obtain one ormore transformed images of the one or more products 101. As an example,the one or more pre-processing techniques applied to the one or moreimages may include, without limitation, cropping, scaling, rotation, andother filtering techniques, which make the one or more images suitablefor further processing.

In an embodiment, after obtaining the one or more transformed images ofthe one or more products 101, the fault detection system 103 maygenerate a plurality of wavelet coefficients corresponding to each ofthe one or more transformed images. Here, the each of the plurality ofwavelet coefficients may correspond to at least one characteristic ofthe one or more products. As an example, the characteristic of the oneor more products may include, without limiting to, type of the one ormore products (i.e., screws, nuts, bolts or other types), shape of theone or more products, dimensions of the one or more products (length,breadth, thickness, diameter and the like) and colour of the one or moreproducts.

In an embodiment, once the wavelet coefficients are generated, the faultdetection system 103 may determine a set of invariant featurescorresponding to the one or more products from the plurality of waveletcoefficients. The set of invariant features may be determined bycomparing values of the plurality of wavelet coefficients withcorresponding predetermined threshold coefficient values. In otherwords, the fault detection system 103 may scan through each of theplurality of wavelet coefficients and segregate them into a group ofwavelet coefficients that are common across each of the one or moretransformed images and whose values are comparable to the predeterminedthreshold coefficient values. Here, the predetermined thresholdcoefficient value may be a dynamic value defined by a user of the faultdetection system 103.

In an embodiment, values associated with the one or more transformedimages after applying various filters may be converted into a residualpyramid, such that, each of the values correspond to various features ofan image. In each layer of the pyramid, the feature values may be downsampled to minimize the feature values as much as possible. In otherwords, the threshold values may depend on the feature in the image beingconsidered. For example, length of the screw in the image may be afeature to be considered. Accordingly, each of these features to beconsidered may be figured out and/or pre-determined by a domain expertbefore analysing the images. In an embodiment, a one-time mapping of thefeatures may be sufficient to cover subsequent occurrences of the samefeature in other objects. As an example, there may be 68 predeterminedthreshold coefficient values.

In an embodiment, subsequent to determining the set of invariantfeatures, the fault detection system 103 may generate a dynamic set ofinvariant features by grouping the invariant features into a set ofgroups based on type of the one or more products. Consequently, eachgroup in the set of groups comprises wavelet coefficients that aredistinct to the type of the one or more products. Further, the faultdetection system 103 may quantize the dynamic set of invariant featuresbased on a predetermined quantization threshold and associate and/orassign a representative coefficient signature for each group in thedynamic set of invariant features. In other words, the fault detectionsystem 103 may divide the dynamic set of invariant features intomultiple groups based on the quantization threshold and represent eachgroup with a unique representative coefficient signature, which helps touniquely select the group of invariant features that belong to arequired coefficient signature. That is, by quantizing the dynamic setof invariant features, the fault detection system 103 optimizes the wayin which the invariant features are stored, and thereby also optimizesthe search and/or retrieval of the stored set of invariant featuresduring real-time processing of the images of the one or more products101.

As an example, consider a full-size image of an object such as a screw,which has a length of 2 inches. A wavelet transformation correspondingto the said image may be generated, for example, as shown in Table Abelow.

TABLE A Exemplary representation of wavelet transformation 402 465.5 3132.5 362 375.5 −73 −10.5 68 33.5 −43 −33.5 15 12.5 −36 −101.5

Subsequently, the coefficients corresponding to an artifact such as a‘tilt’ in the thread of the screw (which is represented by an element on1st row and 4th column of Table A, that is 32.5) may be quantized to anearest value. That is, in the above example, the value 32.5 may bequantized to 33. Further, a threshold for tolerance value may be set. Inan embodiment, if the value of this coefficient for other images is in arange of 32 to 34, no defects may be detected. On the other hand, if thevalue is outside this range, the corresponding screw may be rejectedwith an appropriate feedback.

In an embodiment, upon quantizing the dynamic set of invariant features,the fault detection system 103 may detect the faults in the one or moreproducts based on a comparison of the coefficient signatures associatedwith the one or more products with the representative coefficientsignature of each group in the dynamic set of invariant features. Here,the faults may be detected when a mismatch is identified between thecoefficient signatures associated with the one or more products and therepresentative coefficient signature of each group in the dynamic set ofinvariant features. Subsequently, the fault detection system 103 mayrender a result comprising information related to the faults 107,indicating whether the product is faulty or not, on a user interfaceassociated with the fault detection system 103 to facilitate one or moreusers of the fault detection system 103 to handle the one or more faultyproducts.

FIG. 2 shows a detailed block diagram of a fault detection system 103 inaccordance with some embodiments of the present disclosure.

In some implementations, the fault detection system 103 may include anI/O interface 201, a processor 203 and a memory 205. The I/O interface201 may be communicatively interfaced with an image capturing unit forreceiving one or more images of one or more products 101 to be analyzedfor detection of faults. Further, the I/O interface 201 may becommunicatively interfaced with a database 105 for retrieving one ormore reference images of one or more products 101. The memory 205 may becommunicatively coupled to the processor 203 and may store data 207 andone or more modules 209. The processor 203 may be configured to performone or more functions of the fault detection system 103 for detectingfaults in the one or more products, using the data 207 and the one ormore modules 209.

In an embodiment, the data 207 stored in the memory 205 may include,without limitation, the images of one or more products 101(alternatively referred as one or more images 101 or one or more imagesof the one or more products 101), wavelet coefficients 211, set ofinvariant features 213, quantization thresholds 215 and other data 217.In some implementations, the data 207 may be stored within the memory205 in the form of various data structures. Additionally, the data 207may be organized using data models, such as relational or hierarchicaldata models. The other data 217 may include various temporary data andfiles generated by the one or more modules 209 while performing variousfunctions of the fault detection system 103. As an example, the otherdata 217 may include, without limitation, one or more reference and/orhistorical images of the one or more products 101, predeterminedthreshold coefficient values and predetermined quantization thresholdvalues.

In an embodiment, the images of one or more products 101 may be capturedby a plurality of image capturing units deployed at a manufacturing siteand associated with the fault detection system 103. In an embodiment,each of the one or more images of the one or more products 101 may becaptured from distinct views, orientations and in distinct lightintensities for capturing all possible details of the one or moreproducts.

In an embodiment, the wavelet coefficients 211 may be generated and/orextracted from each of the one or more transformed images of the one ormore products 101 by analysing the one or more transformed images usinga predetermined wavelet transform technique such as Daubechies wavelettransform. In an embodiment, each of the plurality of waveletcoefficients 211 may correspond to at least one characteristic of theone or more products. In some implementations, the wavelet coefficients211 may be generated for different frequency bands of the one or moreimages of the one or more products 101.

In an embodiment, set of invariant features 213 may be obtained from theplurality of wavelet coefficients 211 by comparing values of theplurality of wavelet coefficients 211 with corresponding predeterminedthreshold coefficient values. In an embodiment, the set of invariantfeatures 213 may be detected by identifying the features common acrosseach of the one or more images of the one or more products 101 andconfirming that their values are within the predetermined thresholdcoefficient values. In an embodiment, the set of invariant features 213may be selected based on the attributes of a same type of object.

In an embodiment, quantization thresholds 215 may be used for quantizingthe dynamic set of invariant features 213. In an embodiment, the valueof the quantization thresholds 215 may be dynamically selected based onvariation in values of the wavelet coefficients 211 comprised in thedynamic set of invariant features 213.

In an embodiment, the data 207 may be processed by the one or moremodules 209 of the fault detection system 103. In some implementations,the one or more modules 209 may be communicatively coupled to theprocessor 203 for performing one or more functions of the faultdetection system 103. In an implementation, the one or more modules 209may include, without limiting to, an image transformation unit 219, acoefficient generating module 221, a feature determination module 223, aset generation module 225, a quantization module 227, a fault detectionmodule 229 and other modules 231.

As used herein, the term module may refer to an Application SpecificIntegrated Circuit (ASIC), an electronic circuit, a hardware processor(shared, dedicated, or group) and memory that execute one or moresoftware or firmware programs, a combinational logic circuit, and/orother suitable components that provide the described functionality. Inan implementation, each of the one or more modules 209 may be configuredas stand-alone hardware computing units. In an embodiment, the othermodules 231 may be used to perform various miscellaneous functionalitiesof the fault detection system 103. It will be appreciated that such oneor more modules 209 may be represented as a single module or acombination of different modules.

In an embodiment, the image transformation unit 219 may be configuredfor transforming and/or pre-processing each of the one or more images ofthe one or more products 101 using one or more predetermined imagetransformation techniques. As an example, the image transformationtechniques performed on one or more images of the one or more products101 may include, without limiting to, cropping, scaling, rotation, andother filtering techniques which make the one or more images suitablefor further processing. In an embodiment, the image transformation unit219 may store each of the one or more transformed images in the database105 associated with the fault detection system 103 for future referenceand comparison purposes.

In an embodiment, the coefficient generating module 221 may beconfigured for generating a plurality of wavelet coefficients 211corresponding to each of one or more transformed images of the one ormore products 101, such that each of the plurality of waveletcoefficients 211 correspond to at least one characteristic of the one ormore products. In other words, each of the wavelet coefficients 211 mayserve as template for different faults and may be independent of sizeand orientation of the object as well as the faults in the object. Inthe process, the coefficient generating module 221 may use apredetermined transformation technique such as the Daubechies transformfor generating the coefficient wavelets. Here, the two-dimensional (2D)images of the one or more products 101 may be converted or compressed tocorresponding one-dimensional (1D) wavelet coefficients 211 as therepresentative features of the 2D images of the one or more products101.

Additionally, in some embodiments, the wavelet coefficients 211 modulemay map the plurality of wavelet coefficients 211 with the stored imagesof the one or more products 101, such that the mapped waveletcoefficients 211 serve as a template and help to identify type offaults, if any, in the one or more products during real-time processingof the images of the one or more products 101.

In an embodiment, the feature determination module 223 may be configuredfor determining a set of invariant features 213, corresponding to theone or more products, from the plurality of wavelet coefficients 211.The feature determination module 223 may determine the set of invariantfeatures 213 by comparing the values of the plurality of waveletcoefficients 211 with the corresponding predetermined thresholdcoefficient values. In an embodiment, the feature determination module223 may detect the invariant features by identifying the set offeatures, which are common across all the images of the one or moreproducts 101 and whose values are comparable within a certain thresholdcoefficient value. This may be performed among images of the one or moreproducts 101 that are of same type. As an example, considering there aretwo types of products to be analyzed, namely bolts and washers, thefeature identification may be separately performed for the set of imagesof the bolts and the washers, respectively. Here, only the determinedinvariant features may be taken forward for further processing and allthe remaining features may be ignored. In an embodiment, the thresholdcoefficient value may be determined based on historically observeddeviations from expected class of faults within each type of the one ormore products.

In an embodiment, the set generation module 225 may be configured forgenerating a dynamic set of invariant features 213 by grouping theinvariant features into a set of groups based on type of the one or moreproducts. In an embodiment, each group in the set of groups generated bythe set generation module 225 may comprise wavelet coefficients 211 thatmay be distinct to each type of the one or more products being testedfor faults. To start with, the set generation module 225 may collect theinvariant features for the images of one or more products 101, which areof same type but vary in attributes such as length, width,circumference, depth, and the like. Further, the set generation module225 may form a dynamic set that includes a group of invariant featuresof each object type as an element. The specialty of this dynamic setwould be that each group in the dynamic set would include almost similarinvariant features and differ only for attributes distinct to them.Subsequently, each group in the dynamic set may be compared and adynamic range of the coefficient values may be derived from them. Thesedynamic range of the coefficient values may represent the features ofthe distinct attribute of the product type. The final dynamic set of theinvariant features may include group of coefficients for the baseproduct type and a group of coefficients for distinct attributes, whichare distinct only for each type of the one or more products.

In an embodiment, the quantization module 227 may be configured forquantizing the dynamic set of invariant features 213 based on thepredetermined quantization threshold and then associating a uniquerepresentative coefficient signature for each group in the dynamic setof the invariant features. As shown in FIG. 3, the quantization module227 may include an invariant feature detecting unit 301, a dynamic rangeselecting unit 303 and a data quantizing unit 305.

In an embodiment, the invariant feature detecting unit 301 may beconfigured for receiving the wavelet coefficients 211 corresponding toeach of the one or more images of the one or more products 101. Afterreceiving the wavelet coefficients 211, the invariant feature detectingunit 301 may detect the set of invariant features 213 and/orcoefficients that represent each of the one or more images and discardthe remaining features. In an embodiment, the invariant features may bethe wavelet coefficients 211 that take the same values independent ofthe orientation, size and other attributes of the one or more products.In an embodiment, the dynamic range selecting unit 303 may be configuredfor collecting the invariant features for the one or more images of theone or more products 101, which are of same type but vary in attributesand subsequently find dynamic coefficients corresponding to each of theone or more images.

The data quantizing unit 305 may be configured for creating thequantized coefficients for each element in the dynamic set of invariantfeatures 213 using a threshold quantization value set based on thevariation of each wavelet coefficients 211 in the group. Further, thequantization unit may store the quantized coefficients in the database105 for further reference. In an embodiment, the threshold quantizationvalue may be determined as a value which is in between the levelsrequired to be rounded off.

In an embodiment, the fault detection module 229 may be configured fordetecting the faults in the one or more products based on comparison ofcoefficient signatures associated with the one or more products with therepresentative coefficient signature of each group in the dynamic set ofinvariant features 213. In an embodiment, the fault detection module 229may detect the faults by identifying mismatch of the coefficientsignatures, associated with the one or more products, with therepresentative coefficient signature of each group in the dynamic set ofinvariant features 213.

In an embodiment, if the product being reviewed or analysed for faultsis a compound or a complex product comprising a combination of one ormore sub-products (for example a gear box), then such a complex objectneeds to be segmented before taking further for fault detection. Thesegmentation of the complex object allows the fault detection system 103to isolate the individual sub-products of interest from the rest of thesub-products. Subsequently, the quantization coefficients may be createdfor all the objects of the complex product or for all the sub-productsof the segmented complex product.

In an embodiment, the fault detection module 229 may comprise asearch-handling unit configured to receive the quantized coefficientsfor a given product from the data quantizing unit 305 and use apreconfigured optimized search technique to search the set of givenquantized coefficients among the set of quantized coefficients for allthe objects in the database 105. Generally, a heap sort, B-tree or anyother variations of the B-tree may be used to perform the search. In oneembodiment, Grover's search may also be used to perform the search,since the Grover's search takes least time among all the availablesearch techniques. Here, the quantization signature associated with theproduct may be used as the search key. Since the search is performed onthe dataset of the representative signatures, there will either be aperfect match or no match at all, and as a result, the Grover's searchtechnique may be most efficient.

In an embodiment, upon detecting the faults in the one or more products,the fault detection system 103 may render the detected faults andvalidation results to a user through a user interface associated withthe fault detection system 103. In an embodiment, if the object match isnot found by the search algorithm either for individual product or forthe complex product, the product may be suspected to be faulty.Subsequently, it may be validated using its signature and minimumnon-faulty threshold values. If it is not within the range of thethreshold values, then the object may be considered and labelled asfaulty. In an embodiment, information such as whether the object isfaulty or not, the type of fault, the total number of faults, producttype and total number of faults for each product type etc., may becollected as a report and rendered as output to the user through theuser interface. Using this information, the user may perform one or moreactions on the faulty products, such as discarding the faulty products,to effectively handle the faulty products.

FIG. 4 shows a flowchart illustrating method of detecting faults in oneor more products in accordance with some embodiments of the presentdisclosure.

As illustrated in FIG. 4, the method 400 may include one or more blocksillustrating a method for detecting faults in one or more products usinga fault detection system 103 illustrated in FIG. 1. The method 400 maybe described in the general context of computer executable instructions.Generally, computer executable instructions can include routines,programs, objects, components, data structures, procedures, modules, andfunctions, which perform specific functions or implement specificabstract data types.

The order in which the method 400 is described is not intended to beconstrued as a limitation, and any number of the described method blockscan be combined in any order to implement the method. Additionally,individual blocks may be deleted from the methods without departing fromthe scope of the subject matter described herein. Furthermore, themethod can be implemented in any suitable hardware, software, firmware,or combination thereof.

At block 401, the method 400 includes generating, by the fault detectionsystem 103, a plurality of wavelet coefficients 211 corresponding toeach of one or more transformed images of the one or more products 101.In an embodiment, each of the plurality of wavelet coefficients 211 maycorrespond to at least one characteristic of the one or more products.In an embodiment, the one or more transformed images of the one or moreproducts 101 may be obtained by processing one or more images of the oneor more products 101 using predetermined image transformationtechniques. As an example, the at least one characteristic of the one ormore products may include, without limitation, at least one of type ofthe one or more products, shape of the one or more products, dimensionsof the one or more products and colour of the one or more products.

At block 403, the method 400 includes determining, by the faultdetection system 103, a set of invariant features 213, corresponding tothe one or more products, from the plurality of wavelet coefficients211. In an embodiment, the set of invariant features 213 may bedetermined by comparing values of the plurality of wavelet coefficients211 with corresponding predetermined threshold coefficient values. In anembodiment, the predetermined threshold coefficient value may becomputed based on values of the wavelet coefficients 211 correspondingto a plurality of historical images of the one or more products 101.

At block 405, the method 400 includes generating, by the fault detectionsystem 103, a dynamic set of invariant features 213 by grouping theinvariant features into a set of groups based on the type of the one ormore products. In an embodiment, each group in the set of groups mayinclude wavelet coefficients 211 distinct to the particular type of theone or more products.

At block 407, the method 400 includes quantizing, by the fault detectionsystem 103, the dynamic set of invariant features 213 based on apredetermined quantization threshold and by associating a representativecoefficient signature for each group in the dynamic set of invariantfeatures 213. In an embodiment, the set of invariant features 213 mayinclude wavelet coefficients 211 that are common across each of the oneor more transformed images and whose values are comparable to thepredetermined threshold coefficient values.

At block 409, the method 400 includes detecting, by the fault detectionsystem 103, the faults in the one or more products based on comparisonof coefficient signatures associated with the one or more products withthe representative coefficient signature of each group in the dynamicset of invariant features 213. In an embodiment, the faults may bedetected by identifying a mismatch of coefficient signatures, associatedwith the one or more products, with the representative coefficientsignature of each group in the dynamic set of invariant features 213.

In an embodiment, comparing the coefficient signatures may furthercomprise determining if the product is a compound product comprising aplurality of sub-products. If the product is a complex product, theneach of the one or more transformed images of the one or more products101 may be segmented into distinct images for isolating each of theplurality of sub-products and perform a separate comparison.

In an embodiment, upon detecting faults in the one or more products theinformation related to the faults may be rendered on a user interfaceassociated with the fault detection system 103, which may be used toselect the one or more faulty products and separate them from thenon-faulty products.

Computer System

FIG. 5 illustrates a block diagram of an exemplary computer system 500for implementing embodiments consistent with the present disclosure. Inan embodiment, the computer system 500 may be the fault detection system103 illustrated in FIG. 1, which may be used for detecting faults in theone or more products across a manufacturing process. The computer system500 may include a central processing unit (“CPU” or “processor”) 502.The processor 502 may comprise at least one data processor for executingprogram components for executing user- or system-generated businessprocesses. A user may include an application developer, a programmer, anorganization or any system/sub-system being operated parallelly to thecomputer system 500. The processor 502 may include specializedprocessing units such as integrated system (bus) controllers, memorymanagement control units, floating point units, graphics processingunits, digital signal processing units, etc.

The processor 502 may be disposed in communication with one or moreInput/Output (I/O) devices (511 and 512) via I/O interface 501. The I/Ointerface 501 may employ communication protocols/methods such as,without limitation, audio, analog, digital, stereo, IEEE®-1394, serialbus, Universal Serial Bus (USB), infrared, PS/2, BNC, coaxial,component, composite, Digital Visual Interface (DVI), high-definitionmultimedia interface (HDMI), Radio Frequency (RF) antennas, S-Video,Video Graphics Array (VGA), IEEE® 802.n/b/g/n/x, Bluetooth, cellular(e.g., Code-Division Multiple Access (CDMA), High-Speed Packet Access(HSPA+), Global System For Mobile Communications (GSM), Long-TermEvolution (LTE) or the like), etc. Using the I/O interface 501, thecomputer system 500 may communicate with one or more I/O devices 511 and512.

In some embodiments, the processor 502 may be disposed in communicationwith a communication network 509 via a network interface 503. Thenetwork interface 503 may communicate with the communication network509. The network interface 503 may employ connection protocolsincluding, without limitation, direct connect, Ethernet (e.g., twistedpair 10/100/1000 Base T), Transmission Control Protocol/InternetProtocol (TCP/IP), token ring, IEEE® 802.11a/b/g/n/x, etc. Using thenetwork interface 503 and the communication network 509, the computersystem 500 may connect with an image capturing unit in a manufacturingplant to receive one or more images of one or more products 101.Additionally, the communication network 509 may be used for receivingrequired data and information from a database 105 associated with thecomputer system 500.

In an implementation, the communication network 509 may be implementedas one of the several types of networks, such as intranet or Local AreaNetwork (LAN) and such within the organization. The communicationnetwork 509 may either be a dedicated network or a shared network, whichrepresents an association of several types of networks that use avariety of protocols, for example, Hypertext Transfer Protocol (HTTP),Transmission Control Protocol/Internet Protocol (TCP/IP), WirelessApplication Protocol (WAP), etc., to communicate with each other.Further, the communication network 509 may include a variety of networkdevices, including routers, bridges, servers, computing devices, storagedevices, etc.

In some embodiments, the processor 502 may be disposed in communicationwith a memory 505 (e.g., RAM 513, ROM 514, etc. as shown in FIG. 5) viaa storage interface 504. The storage interface 504 may connect to memory505 including, without limitation, memory drives, removable disc drives,etc., employing connection protocols such as Serial Advanced TechnologyAttachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394,Universal Serial Bus (USB), fiber channel, Small Computer SystemsInterface (SCSI), etc. The memory drives may further include a drum,magnetic disc drive, magneto-optical drive, optical drive, RedundantArray of Independent Discs (RAID), solid-state memory devices,solid-state drives, etc.

The memory 505 may store a collection of program or database components,including, without limitation, user/application interface 506, anoperating system 507, a web browser 508, and the like. In someembodiments, computer system 500 may store user/application data 506,such as the data, variables, records, etc. as described in thisinvention. Such databases may be implemented as fault-tolerant,relational, scalable, secure databases such as Oracle® or Sybase®.

The operating system 507 may facilitate resource management andoperation of the computer system 500. Examples of operating systemsinclude, without limitation, APPLE® MACINTOSH® OS X®, UNIX®, UNIX-likesystem distributions (E.G., BERKELEY SOFTWARE DISTRIBUTION® (BSD),FREEBSD®, NETBSD®, OPENBSD, etc.), LINUX® DISTRIBUTIONS (E.G., RED HAT®,UBUNTU®, KUBUNTU®, etc.), IBM® OS/2®, MICROSOFT® WINDOWS® (XP®,VISTA/7/8, 10 etc.), APPLE® IOS®, GOOGLE™ ANDROID™, BLACKBERRY® OS, orthe like.

The user interface 506 may facilitate display, execution, interaction,manipulation, or operation of program components through textual orgraphical facilities. For example, the user interface 506 may providecomputer interaction interface elements on a display system operativelyconnected to the computer system 500, such as cursors, icons, checkboxes, menus, scrollers, windows, widgets, and the like. Further,Graphical User Interfaces (GUIs) may be employed, including, withoutlimitation, APPLE® MACINTOSH® operating systems' Aqua®, IBM® OS/2®,MICROSOFT® WINDOWS® (e.g., Aero, Metro, etc.), web interface libraries(e.g., ActiveX®, JAVA®, JAVASCRIPT®, AJAX, HTML, ADOBE® FLASH®, etc.),or the like.

The web browser 508 may be a hypertext viewing application. Secure webbrowsing may be provided using Secure Hypertext Transport Protocol(HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), andthe like. The web browsers 508 may utilize facilities such as AJAX,DHTML, ADOBE® FLASH®, JAVASCRIPT®, JAVA®, Application ProgrammingInterfaces (APIs), and the like. Further, the computer system 500 mayimplement a mail server stored program component. The mail server mayutilize facilities such as ASP, ACTIVEX®, ANSI® C++/C#, MICROSOFT®,.NET, CGI SCRIPTS, JAVA®, JAVASCRIPT®, PERL®, PHP, PYTHON®, WEBOBJECTS,etc. The mail server may utilize communication protocols such asInternet Message Access Protocol (IMAP), Messaging ApplicationProgramming Interface (MAPI), MICROSOFT® exchange, Post Office Protocol(POP), Simple Mail Transfer Protocol (SMTP), or the like. In someembodiments, the computer system 500 may implement a mail client storedprogram component. The mail client may be a mail viewing application,such as APPLE® MAIL, MICROSOFT® ENTOURAGE®, MICROSOFT® OUTLOOK®,MOZILLA® THUNDERBIRD®, and the like.

Furthermore, one or more computer-readable storage media may be utilizedin implementing embodiments consistent with the present invention. Acomputer-readable storage medium refers to any type of physical memoryon which information or data readable by a processor may be stored.Thus, a computer-readable storage medium may store instructions forexecution by one or more processors, including instructions for causingthe processor(s) to perform steps or stages consistent with theembodiments described herein. The term “computer-readable medium” shouldbe understood to include tangible items and exclude carrier waves andtransient signals, i.e., non-transitory. Examples include Random AccessMemory (RAM), Read-Only Memory (ROM), volatile memory, nonvolatilememory, hard drives, Compact Disc (CD) ROMs, Digital Video Disc (DVDs),flash drives, disks, and any other known physical storage media.

Advantages of the Embodiments of the Present Disclosure are IllustratedHerein.

In an embodiment, the present disclosure provides an automated methodfor dynamically detecting faults in one or more products being producedin a manufacturing plant.

In an embodiment, the proposed fault detection method consumes reducedlocal memory compared to the conventional fault detection mechanisms,which require huge data repository of images of all the faults fortraining a model.

In an embodiment, the method of present disclosure robust and universalfault detection mechanism, which detects faults in one or more productsirrespective of size and type of the one or more products, illuminationsand orientations of the product images.

In an embodiment, the method of present disclosure accepts and/orprovides anticipated detection results for a wide range of variationsand does not require training.

In an embodiment, the method of present disclosure detects faults withhigher accuracy since the fault detection is performed based on waveletcoefficients 211 retrieved from the images of one or more products.

As stated above, it shall be noted that the method and the faultdetection system of the present disclosure may be used to overcomevarious technical problems related to automated fault detection in oneor more products in a manufacturing plant. Specifically, the method andthe fault detection system disclosed herein aim to reduce trainingrequirements (both in terms of time required and size of trainingdataset) and enhance accuracy of the fault detection. In other words,the disclosed method and the fault detection system have a practicalapplication and provide a technically advanced solution to the technicalproblems associated with the existing automated code generationmechanisms.

The aforesaid technical advancement and practical application of theproposed method may be attributed to the aspects of a) generating adynamic set of invariant features by grouping the invariant featuresbased on type of the one or more products and b) quantizing the dynamicset of invariant features based on a predetermined quantizationthreshold, as disclosed in steps 3 and 4 of the independent claims 1 and7 of the present disclosure.

In light of the technical advancements provided by the disclosed methodand fault detection system, the claimed steps, as discussed above, arenot routine, conventional, or well-known aspects in the art, as theclaimed steps provide the aforesaid solutions to the technical problemsexisting in the conventional technologies. Further, the claimed stepsclearly bring an improvement in the functioning of the system itself, asthe claimed steps provide a technical solution to a technical problem.

The terms “an embodiment”, “embodiment”, “embodiments”, “theembodiment”, “the embodiments”, “one or more embodiments”, “someembodiments”, and “one embodiment” mean “one or more (but not all)embodiments of the invention(s)” unless expressly specified otherwise.

The terms “including”, “comprising”, “having” and variations thereofmean “including but not limited to”, unless expressly specifiedotherwise.

The enumerated listing of items does not imply that any or all the itemsare mutually exclusive, unless expressly specified otherwise. The terms“a”, “an” and “the” mean “one or more”, unless expressly specifiedotherwise.

A description of an embodiment with several components in communicationwith each other does not imply that all such components are required. Onthe contrary, a variety of optional components are described toillustrate the wide variety of possible embodiments of the invention.

When a single device or article is described herein, it will be clearthat more than one device/article (whether they cooperate) may be usedin place of a single device/article. Similarly, where more than onedevice/article is described herein (whether they cooperate), it will beclear that a single device/article may be used in place of the more thanone device/article or a different number of devices/articles may be usedinstead of the shown number of devices or programs. The functionalityand/or features of a device may be alternatively embodied by one or moreother devices which are not explicitly described as having suchfunctionality/features. Thus, other embodiments of invention need notinclude the device itself.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based here on. Accordingly, the embodiments of the presentinvention are intended to be illustrative, but not limiting, of thescope of the invention, which is set forth in the following claims.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the following claims.

REFERRAL NUMERALS

Reference Number Description 100 Environment 101 Images of one or moreproducts 103 Fault detection system 105 Database 107 Information relatedto faults 201 I/O Interface 203 Processor 205 Memory 207 Data 209Modules 211 Wavelet coefficients 213 Set of invariant features 215Quantization thresholds 217 Other data 219 Image transformation unit 221Coefficient generating module 223 Feature determination module 225 Setgeneration module 227 Quantization module 229 Fault detection module 231Other modules 301 Invariant feature detecting unit 303 Dynamic rangeselecting unit 305 Data quantizing unit 500 Exemplary computer system501 I/O Interface of the exemplary computer system 502 Processor of theexemplary computer system 503 Network interface 504 Storage interface505 Memory of the exemplary computer system 506 User/Application 507Operating system 508 Web browser 509 Communication network 511 Inputdevices 512 Output devices 513 RAM 514 ROM

What is claimed is:
 1. A method for detecting faults in products, themethod comprising: generating, by a fault detection system, a pluralityof wavelet coefficients corresponding to one or more transformed imagesof one or more products, wherein each of the plurality of waveletcoefficients correspond to at least one characteristic of each of theone or more products; determining, by the fault detection system, a setof invariant features, corresponding to each of the one or moreproducts, from the plurality of wavelet coefficients by comparing valuesof the plurality of wavelet coefficients with correspondingpredetermined threshold coefficient values; generating, by the faultdetection system, a dynamic set of invariant features by grouping theinvariant features into a set of groups based on type of the one or moreproducts, wherein each group in the set of groups comprises waveletcoefficients distinct to the type of the one or more products;quantizing, by the fault detection system, the dynamic set of invariantfeatures based on a predetermined quantization threshold and associatinga representative coefficient signature for each group in the dynamic setof invariant features; and detecting, by the fault detection system, thefaults in the one or more products based on comparison of coefficientsignatures associated with each of the one or more products with therepresentative coefficient signature of each group in the dynamic set ofinvariant features, wherein detecting the faults comprising identifyingmismatch of coefficient signatures, associated with each of the one ormore products, with the representative coefficient signature of eachgroup in the dynamic set of invariant features.
 2. The method as claimedin claim 1, wherein the one or more transformed images of the one ormore products are obtained by processing one or more images of each ofthe one or more products using predetermined image transformationtechniques, and wherein the at least one characteristic of the one ormore products comprises at least one of type of the one or moreproducts, shape of the one or more products, dimensions of the one ormore products and colour of the one or more products.
 3. The method asclaimed in claim 1, wherein the predetermined threshold coefficientvalues are computed based on values of the wavelet coefficientscorresponding to a plurality of historical images of the one or moreproducts.
 4. The method as claimed in claim 1, wherein the set ofinvariant features comprises wavelet coefficients that are common acrosseach of the one or more transformed images and having values comparableto the predetermined threshold coefficient values.
 5. The method asclaimed in claim 1, wherein comparing the coefficient signatures furthercomprises: determining if the one or more products are a compoundproduct comprising a plurality of sub-products; and segmenting the oneor more transformed images of the one or more products into distinctimages for isolating each of the plurality of sub-products and perform aseparate comparison.
 6. The method as claimed in claim 1 furthercomprises rendering, upon detecting faults in the one or more products,information related to the faults on a user interface associated withthe fault detection system.
 7. A fault detection system for detectingfaults in products, the fault detection system comprising: a processor;and a memory, communicatively coupled to the processor, wherein thememory stores processor-executable instructions, which on execution,cause the processor to: generate a plurality of wavelet coefficientscorresponding to one or more transformed images of one or more products,wherein each of the plurality of wavelet coefficients correspond to atleast one characteristic of each of the one or more products; determinea set of invariant features, corresponding to each of the one or moreproducts, from the plurality of wavelet coefficients by comparing valuesof the plurality of wavelet coefficients with correspondingpredetermined threshold coefficient values; generate a dynamic set ofinvariant features by grouping the invariant features into a set ofgroups based on type of the one or more products, wherein each group inthe set of groups comprises wavelet coefficients distinct to the type ofthe one or more products; quantize the dynamic set of invariant featuresbased on a predetermined quantization threshold and associating arepresentative coefficient signature for each group in the dynamic setof invariant features; and detect the faults in the one or more productsbased on comparison of coefficient signatures associated with each ofthe one or more products with the representative coefficient signatureof each group in the dynamic set of invariant features, wherein thefaults are detected by identifying mismatch of coefficient signatures,associated with each of the one or more products, with therepresentative coefficient signature of each group in the dynamic set ofinvariant features.
 8. The fault detection system as claimed in claim 7,wherein the processor obtains the one or more transformed images of theone or more products by processing one or more images of each of the oneor more products using predetermined image transformation techniques,and wherein the at least one characteristic of each of the one or moreproducts comprises at least one of type of the one or more products,shape of the one or more products, dimensions of the one or moreproducts and colour of the one or more products.
 9. The fault detectionsystem as claimed in claim 7, wherein the processor computes thepredetermined threshold coefficient values based on values of thewavelet coefficients corresponding to a plurality of historical imagesof the one or more products.
 10. The fault detection system as claimedin claim 7, wherein the set of invariant features comprises waveletcoefficients that are common across each of the one or more transformedimages and having values comparable to the predetermined thresholdcoefficient values.
 11. The fault detection system as claimed in claim7, wherein the processor compares the coefficient signatures by:determining if the one or more products are a compound productcomprising a plurality of sub-products; and segmenting the one or moretransformed images of the one or more products into distinct images forisolating each of the plurality of sub-products and perform a separatecomparison.
 12. The fault detection system as claimed in claim 7,wherein the processor is further configured to render, upon detectingthe faults in the one or more products, information related to thefaults on a user interface associated with the fault detection system.13. A non-transitory computer readable medium including instructionsstored thereon that when processed by at least one processor cause afault detection system to perform operations comprising: generating aplurality of wavelet coefficients corresponding to one or moretransformed images of the one or more products, wherein each of theplurality of wavelet coefficients correspond to at least onecharacteristic of each of the one or more products; determining a set ofinvariant features, corresponding to each of the one or more products,from the plurality of wavelet coefficients by comparing values of theplurality of wavelet coefficients with corresponding predeterminedthreshold coefficient values; generating a dynamic set of invariantfeatures by grouping the invariant features into a set of groups basedon type of the one or more products, wherein each group in the set ofgroups comprises wavelet coefficients distinct to the type of the one ormore products; quantizing the dynamic set of invariant features based ona predetermined quantization threshold and associating a representativecoefficient signature for each group in the dynamic set of invariantfeatures; and detecting the faults in the one or more products based oncomparison of coefficient signatures associated with each of the one ormore products with the representative coefficient signature of eachgroup in the dynamic set of invariant features, wherein the faults aredetected by identifying mismatch of coefficient signatures, associatedwith each of the one or more products, with the representativecoefficient signature of each group in the dynamic set of invariantfeatures.
 14. The non-transitory computer readable medium as claimed inclaim 13, wherein the one or more transformed images of the one or moreproducts are obtained by processing one or more images of each of theone or more products using predetermined image transformationtechniques, and wherein the at least one characteristic of each of theone or more products comprises at least one of type of the one or moreproducts, shape of the one or more products, dimensions of the one ormore products and colour of the one or more products.
 15. Thenon-transitory computer readable medium as claimed in claim 13, whereinthe predetermined threshold coefficient values are computed based onvalues of the wavelet coefficients corresponding to a plurality ofhistorical images of the one or more products.
 16. The non-transitorycomputer readable medium as claimed in claim 13, wherein the set ofinvariant features comprises wavelet coefficients that are common acrosseach of the one or more transformed images and having values comparableto the predetermined threshold coefficient values.
 17. Thenon-transitory computer readable medium as claimed in claim 13, whereinthe coefficient signatures are compared by: determining if the one ormore products are a compound product comprising a plurality ofsub-products; and segmenting the one or more transformed images of theone or more products into distinct images for isolating each of theplurality of sub-products and perform a separate comparison.
 18. Thenon-transitory computer readable medium as claimed in claim 13, whereininformation related to the faults are rendered on a user interfaceassociated with the fault detection system upon detecting the faults inthe one or more products.